0 GOTO 100 1 REM MAG PROD V1.2 2 REM (C) 1986 DAVID A. HOOK 9 REM POSITION AT REC #R 10 PRINT#15,"P"+CHR$(3)+CHR$(RAND255)+CHR$(R/256)+CHR$(1):RETURN 19 REM DISK ERROR CHECK 20 INPUT#15,DE,DE$,T,S: IF DE<20 OR DE=50 OR DE=51 THEN RETURN 25 PRINT " [196]ISK [197]RROR[146]";DE;DE$;T;S 30 CLOSE 3: CLOSE 2: CLOSE 15: END 49 REM EXIT SUBROUTINE 50 CLOSE 3: CLOSE 2: CLOSE 15 55 PRINT " [208]RESS [211][208][193][195][197] [212]O [197]XIT" 60 GET Z$: IF Z$<>CHR$(32) GOTO 60 65 RETURN 100 A$="ABCDEFGHIJKLMNOPQRST": A$=A$+A$+"U" 120 REM ISSUE NAME, DRIVE#, MAX PAGES 130 READ F3$, D3$, MP 150 LP=25: AD=896: CK=0: IF PEEK(AD)=160 GOTO 190 160 FOR I=AD TO AD+41: READ DA: POKE I,DA: CK=CK+DA: NEXT 180 IF CK<>6121 THEN PRINT "ERROR IN DATA": STOP 190 : 200 PRINT "[147]"; TAB(11); "[211][207][198][212][215][193][210][197] [205][193][199][193][218][201][206][197]"; SPC(21); "(C)1986 [196]AVID [193]. [200]OOK" 210 PRINT " 1. [195]REATE [206]EW [201]SSUE": PRINT " 2. [193]DD [212]O [193]N [201]SSUE" 220 PRINT " 3. [212]ABLE [207]F [195]ONTENTS": PRINT " 4. [196]ELETE [212]EXT [198]ILES" 230 PRINT " 5. [198]IX [208]AGE [195]OUNTER": PRINT " 6. [209]UIT [208]ROGRAM" 250 PRINT " [195]HOICE (1-5): ?[157]"; 260 GET Z$: IF Z$<"1" OR Z$>"6" GOTO 260 270 PRINT ""; Z$ 280 FOR I=1 TO 1500: NEXT 300 ON VAL(Z$) GOSUB 1000, 2000, 3000, 4000, 5000, 30 310 GOTO 200 499 REM ISSUE SBR 500 PRINT" [208]LACE THE [201]SSUE [196]ISK IN THE DRIVE" 510 PRINT ""; TAB(15); F3$ 520 INPUT "[145] [201]SSUE [206]AME: "; F3$ 530 PRINT TAB(15); D3$ 540 INPUT "[145] [207]N [196]RIVE #: "; D3$ 560 OPEN 15, 8, 15, "I"+D3$: GOSUB 20 580 F$ = D3$ + ":" + F3$: IF Z$="1" THEN F$= F3$ + ",L,"+ CHR$(40) 590 OPEN 3, 8, 3, F$: GOSUB 20 610 RETURN 999 REM CREATE NEW ISSUE 1000 PRINT "[147]"; TAB(12); "[195]REATE [206]EW [201]SSUE" 1010 PRINT" [208]LACE A [198]ORMATTED [196]ISK IN THE DRIVE" 1020 GOSUB 510 1040 PRINT ""; TAB(14); MP 1050 INPUT "[145] [205]AX [208]AGE #: "; MP 1070 PRINT " [208]LEASE WAIT A FEW MOMENTS..." 1090 REM CREATE LAST RECORD 1100 LN=LP*MP+1 1110 R=LN: GOSUB 10 1120 PRINT#3, CHR$(255) 1130 R=LN: GOSUB 10 1150 REM POINT TO ISSUE PAGE 2 1160 R=1: GOSUB 10 1170 PRINT#3, LP+1 1180 R=1: GOSUB 10 1200 GOSUB 20 1220 PRINT " [196]ONE." 1240 GOTO 50 1999 REM ADD TO AN ISSUE 2000 PRINT "[147]"; TAB(12); "[193]DD [212]O [193]N [201]SSUE" 2010 GOSUB 500 2030 INPUT " [212]EXT [198]ILE: *[157][157][157]"; F2$ 2040 IF F2$="*" GOTO 2030 2050 INPUT " [207]N [196]RIVE #: 0[157][157][157]"; D2$ 2060 IF D2$<>"0" AND D2$<>"1" GOTO 2050 2080 IF D2$<>D3$ THEN PRINT#15, "I"+D2$: GOSUB 20 2100 OPEN 2, 8, 2, D2$+":"+F2$: GOSUB 20 2120 PRINT " [215]ORKING..." 2140 REM FETCH LINE COUNT 2150 R=1: GOSUB 10 2160 INPUT#3, N: FL=N 2170 R=1: GOSUB 10 2190 REM BUMP COUNT 2200 N=N+1 2220 REM GET TEXT LINE 2230 SYS AD: SS=ST 2240 L=PEEK(142) 2260 REM WRITE IT TO ISSUE 2270 R=N: GOSUB 10 2280 PRINT#3, LEFT$(A$,L) 2290 R=N: GOSUB 10 2310 GOSUB 20 2330 REM CHECK END OF FILE 2340 IF SS=0 GOTO 2200 2360 REM UPDATE LINE COUNT 2370 R=1: GOSUB 10 2380 PRINT#3, N: LL=N 2390 R=1: GOSUB 10 2410 PRINT " [211]TART: [208]AGE"; (FL-1)/LP+1 2420 PRINT " [197]ND: [208]AGE"; (LL-1)/LP 2440 GOTO 50 2999 REM TABLE OF CONTENTS 3000 PRINT "[147]"; TAB(11); "[212]ABLE [207]F [195]ONTENTS" 3010 GOSUB 500 3030 INPUT " [195]ONTENTS: *[157][157][157]"; F2$ 3040 IF F2$="*" GOTO 3030 3050 INPUT " [207]N [196]RIVE #: 0[157][157][157]"; D2$ 3060 IF D2$<>"0" AND D2$<>"1" GOTO 3050 3080 IF D2$<>D3$ THEN PRINT#15, "I"+D2$: GOSUB 20 3100 OPEN 2, 8, 2, D2$+":"+F2$: GOSUB 20 3120 REM SET TO FIRST LINE 3130 N=1 3150 REM BUMP COUNT 3160 N=N+1 3180 REM GET TEXT LINE 3190 SYS AD: SS=ST 3200 L=PEEK(142) 3220 REM WRITE IT TO ISSUE 3230 R=N: GOSUB 10 3240 PRINT#3, LEFT$(A$,L) 3250 R=N: GOSUB 10 3270 GOSUB 20 3290 REM CHECK END OF FILE 3300 IF SS=0 GOTO 3160 3320 GOTO 50 3999 REM DELETE TEXT FILES 4000 PRINT "[147]"; TAB(11); "[196]ELETE [212]EXT [198]ILES" 4010 PRINT " [208]LACE THE [212]EXT [198]ILE [196]ISK IN DRIVE #0" 4020 INPUT " [212]EXT [198]ILE PREFIX: P/[157][157][157][157]"; PR$ 4030 IF PR$="*" GOTO 4020 4050 PRINT " [211]CRATCH [198]ILES PREFIXED WITH: "; CHR$(34); PR$; CHR$(34) 4060 INPUT " [201]S THIS [207][203] (Y/N): N[157][157][157]"; Z$ 4070 IF Z$<>"Y" THEN RETURN 4090 PRINT " [215]ORKING..." 4110 OPEN 15, 8, 15, "I"+D3$: GOSUB 20 4130 PRINT#15, "S0:"+PR$+"*": GOSUB 20 4140 PRINT " "; DE$;T 4160 GOTO 50 4999 REM FIX PAGE COUNTER 5000 PRINT "[147]"; TAB(12); "[198]IX [208]AGE [195]OUNTER" 5010 GOSUB 500 5030 REM FETCH LINE COUNT 5040 R=1: GOSUB 10 5050 INPUT#3, N 5060 R=1: GOSUB 10 5080 REM OFFER CHANGE 5090 PRINT ""; TAB(22); (N-1)/LP 5100 INPUT "[145] [195]HANGE [197]ND [208]AGE TO: "; N 5120 REM UPDATE LINE COUNT 5130 R=1: GOSUB10 5140 PRINT#3, N*LP+1 5150 R=1: GOSUB10 5170 GOTO 50 7000 REM ISSUE NAME, DRIVE # 7010 DATA "JUL86", 0 7100 REM MAX # OF PAGES 7110 DATA 60 8000 REM C64 STRING THING DATA (FILE 2) 8010 DATA 160,2,177,45,153,137,0,200,192,6,208,246,162,2 8020 DATA 32,198,255,32,228,255,201,13,240,15,164,142,145,140 8030 DATA 200,132,142,196,139,240,4,165,144,240,234,76,204,255